/*****************************************************************************
**
**------------------------------------文件信息--------------------------------
** 文 件  名 称:
** 最后修改日期:2018-05-14
** 最后修改版本:V1.0
** 文件功能概述:
**
**-----------------------------------------------------------------------------
** 作        者:乔路阳
** 创 建  日 期:2016-10-13  
** 版        本:V1.0
** 简 要  概 述:
**
**-----------------------------------------------------------------------------
** 修   改   人:
** 修 改  日 期:       
** 修 改  版 本:
** 修 改  概 述:
** 审   核   人:
******************************************************************************/
#ifndef __QUEUE_H
#define __QUEUE_H
#include "stdint.h"

#ifdef __cplusplus
 extern "C" {
#endif

typedef struct{
    uint8_t* p_buff;                                                                        //缓冲区指针
    uint16_t buff_size;                                                                     //队列深度
    uint16_t startAddr;                                                                     //内容开始地址
    uint16_t end_addr;                                                                      //内容结束地址
    volatile uint16_t buff_len;                                                             //队列长度
}Queue_TypeDef;

uint8_t Queue_Init(Queue_TypeDef* Queue_TypeStruct,uint8_t* p_buff,uint16_t size);
uint8_t Queue_Add(Queue_TypeDef* Queue_TypeStruct,uint8_t* p_buff,uint16_t lenght);
uint16_t Queue_GetLen(Queue_TypeDef* Queue_TypeStruct);
uint8_t Queue_GetData(Queue_TypeDef* Queue_TypeStruct,uint16_t count);
uint16_t Queue_GetDatas(Queue_TypeDef* Queue_TypeStruct,uint8_t* p_buff,uint16_t lenght);
uint16_t Queue_Del(Queue_TypeDef* Queue_TypeStruct,uint16_t lenght);

#ifdef __cplusplus
}
#endif

#endif
/******************************************************************************
**  文件结束
******************************************************************************/

